package com.pany.kotlin

/*
*Author:zhang
*Date:2022/4/9
*
* 空指针异常 kotlin 处理方式  第5天学习
*
*/

fun main(args: Array<String>) {
    println(converToInt("a"))

    printMultiply("3", "a")

    printMultiply2("3", "a")


}

// int 加上一个问号 ? 表示 返回值是一个整数类型,但可是是空的
//fun converToInt(str: String): Int  { // 如果没有加上 ?  表示一定是不为空的整数
//fun converToInt(str: String): String  { // 如果没有加上 ?  表示一定是不为空的String ... 等等类型
fun converToInt(str: String): Int? {

    try {
        return str.toInt()
    } catch (ex: java.lang.NumberFormatException) {
        return null
    }
}

// 乘法运算  2 == to 意思
fun printMultiply(a: String, b: String) {

    var a2Int: Int? = converToInt(a)// 正确写法 加上问号 ?
    var b2Int = converToInt(b)  // 也可以省略 ?

    if (null != a2Int && null != b2Int) {

        println(a2Int * b2Int)
    } else {

        println(" param not int ")

    }

}

// 这个和上面一样的,先进行了判断,可以省略问号
fun printMultiply2(a: String, b: String) {

    var a2Int = converToInt(a)
    var b2Int = converToInt(b)

    if (null == a2Int) {  //先进行了判断 null,
        println(" param not int ")
    } else if (null == b2Int) {
        println(" param not int ")
    } else {
        println(a2Int * b2Int)
    }


}

